[이코테-정렬]_성적이 낮은 순서로 학생 출력하기


문제 설명

학생과 점수를 입력 받아 점수를 기준으로 이름만 오름차순 출력하는 문제

My Solution

n = int(input())

arr = []
for i in range(n):
    input_data = input().split()
    arr.append((input_data[0], input_data[1]))
arr.sort(key=lambda x: x[1])

for student in arr:
    print(student[0])

문제 풀이

  • 문자열 2개를 입력 받아 이름은 문자열 그대로, 점수는 정수형으로 변환해 넣어준다.
  • sort함수의 key 매개변수를 이용해 점수를 기준으로 Asending 이후 출력
  • 데이터의 양이 한정적이고 빠른 정렬을 지원하는 계수 정렬 방식도 풀이에 적합하다.

이코테 풀이

n = int(input())

array = []
for i in range(n):
    input_data = input().split()
    # 이름은 문자열 그대로, 점수는 정수형으로 변환
    array.append(input_data[0], int(input_data[1]))

# 키를 이용하여 정렬
array = sorted(array, key=lambda student: student[1])

# 정렬이 수행된 결과를 출력
for student in array:
    print(student[0], end=' ')

Hello, I'm@nickhealthy
개발자를 꿈꾸고, 파이썬과 클라우드에 관심이 많은 비전공자

Github